package com.example.no1admin.mapper;

import com.example.no1admin.pojo.dto.store.StoreEditDTO;
import com.example.no1admin.pojo.entity.Store;
import com.example.no1admin.pojo.vo.store.StoreDetailVO;
import com.example.no1admin.pojo.vo.store.StoreListItemVO;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface StoreMapper {

    /**
     * 插入门店数据
     * @param store 门店数据
     * @return 受影响的行数，成功插入数据时，将返回1
     */
    int insert(Store store);

    /**
     * 根据门店id删除对应的门店数据
     * @param id 门店id
     * @return 受影响的行数，成功删除数据时，将返回1，如果id对应的数据不存在，则返回0
     */
    int deleteById(Long id);

    /**
     * 根据若干个门店id，批量删除门店数据
     * @param ids 期望删除的若干个门店数据的id
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int deleteByIds(Long... ids);

    /**
     * 根据id修改门店数据
     * @param storeEditDTO 门店数据
     * @return 受影响的行数，当修改成功时，将返回1，如果无此id对应的数据，将返回0
     */
    int updateById(StoreEditDTO storeEditDTO);

    /**
     * 根据名称统计此名称对应的门店数据的数量
     * @param name 门店名称
     * @return 此名称对应的门店数据的数量
     */
    int countByName(String name);

    /**
     * 根据门店id查询门店详情
     * @param id 门店id
     * @return 此门店id对应的门店数据的数量
     */
    StoreDetailVO getById(Long id);
    /**
     *查询门店列表
     * @return 门店列表的集合
     */
    List<StoreListItemVO> list();
}
